|
Imperative Programmiersprachen sind Abstraktionen der Von
Neumann'schen Computer-Architektur. Durch die Verwendung von
Call by Reference Parametern und Seiteneffekten (globale Variablen),
erreichen sie eine sehr effiziente Ausführung ihrer Programme auf
Von Neumann Computern. Es ergeben sich dadurch aber auch
schwerwiegende Probleme. Um unerwünschte Seiteneffekte ausfindig zu
machen, müssen große Teile eines Programms -- unter Umständen das
gesamte Programm -- betrachtet werden. Durch Call by Reference
Parameter kann man den unerwünschten Effekt des Aliasing induzieren
(Zugriff auf ein Speicherobjekt durch mehr als eine Variable). Eine
Programmverifikation und Optimierung wird dadurch erschwert, wenn
nicht gar unmöglich gemacht.
Im Laufe der Entwicklung Imperativer Programmiersprachen hat man
diese unerwünschten Effekte, z.B. durch den expliziten Import von
globalen Variablen, einschränken können. Auch die vorliegende
Arbeit hat sich zum Ziel gesteckt, die genannten Nachteile zu
eliminieren bzw. einzuschränken. Ein an der Universität Stuttgart
entwickeltes Variablenmodell wurde in den GNU Ada 95 Translater (ein
Ada 95 Compiler) integriert. Dabei wurde \PA\ größtenteils
eliminiert. Unerwünschte Seiteneffekte lassen sich in der
veränderten Sprache leichter eingrenzen als in Ada 95.
Neben einer Einführung in die Problematik umfaßt die vorliegende
Arbeit eine Beschreibung des Variablenmodells, seine Integration in
Ada 95, sowie dessen Implementierung und Test. Bis auf wenige Tests
zur Laufzeit sollte die veränderte Sprache bezüglich Effizienz Ada
95 in nichts nach stehen. Die Implementierung konnte jedoch nicht
abgeschlossen werden
|